#!usr/bin/env python  
# -*- coding:utf-8 _*-
""" 
@author:robot
@file: splice01_category_type.py 
@version:
@time: 2022/02/16 
"""
from TapClientCaseData.ColumnGenerateData.dynamic.base.base06_sqlserver import *

__all__ = [
    'generate_columns_data', 'PK', 'SQLSERVER_ALL_TYPE',

    'SQLSERVER_ALL_TYPE_COLUMNS',
    'SQLSERVER_EXACT_NUMERICS_ALL_COLUMNS',
    'SQLSERVER_APPROXIMATE_NUMERICS_ALL_COLUMNS',
    'SQLSERVER_DATE_AND_TIME_ALL_TYPE',
    'SQLSERVER_CHARACTER_STRINGS_ALL_COLUMNS',
    'SQLSERVER_UNICODE_CHARACTER_STRINGS_ALL_COLUMNS',
    'SQLSERVER_BINARY_STRINGS_ALL_COLUMNS',
    'SQLSERVER_OTHER_DATA_TYPE_ALL_COLUMNS'
]

# EXACT_NUMERICS
SQLSERVER_EXACT_NUMERICS_ALL_TYPE = [
    PK, tinyint, smallint, INT, bigint, decimal,
    numeric, bit, smallmoney, money
]

# APPROXIMATE_NUMERICS
SQLSERVER_APPROXIMATE_NUMERICS_ALL_TYPE = [
    PK, FLOAT, real
]

# DATE_AND_TIME
SQLSERVER_DATE_AND_TIME_ALL_TYPE = [
    PK, date, datetimeoffset, datetime2, smalldatetime,
    datetime, time
]

# CHARACTER_STRINGS
SQLSERVER_CHARACTER_STRINGS_ALL_TYPE = [
    PK, char, varchar, text
]

# UNICODE_CHARACTER_STRINGS
SQLSERVER_UNICODE_CHARACTER_STRINGS_ALL_TYPE = [
    PK, nchar, nvarchar, ntext
]

# BINARY_STRINGS
SQLSERVER_BINARY_STRINGS_ALL_TYPE = [
    PK, binary, varbinary, image
]
# OTHER_DATA_TYPE
SQLSERVER_OTHER_DATA_TYPE_ALL_TYPE = [
    PK,
    # cursor, TODO can't create
    # rowversion, hierarchyid, uniqueidentifier,
    # sql_variant,
    xml,
    # table, TODO can't create
    # geometry, geography
]

SQLSERVER_ALL_TYPE = [PK] + SQLSERVER_EXACT_NUMERICS_ALL_TYPE[1:] + \
                     SQLSERVER_APPROXIMATE_NUMERICS_ALL_TYPE[1:] + \
                     SQLSERVER_DATE_AND_TIME_ALL_TYPE[1:] + \
                     SQLSERVER_CHARACTER_STRINGS_ALL_TYPE[1:] + \
                     SQLSERVER_UNICODE_CHARACTER_STRINGS_ALL_TYPE[1:] + \
                     SQLSERVER_BINARY_STRINGS_ALL_TYPE[1:] + \
                     SQLSERVER_OTHER_DATA_TYPE_ALL_TYPE[1:]

SQLSERVER_ALL_TYPE_COLUMNS = generate_columns_data(SQLSERVER_ALL_TYPE)

SQLSERVER_EXACT_NUMERICS_ALL_COLUMNS = generate_columns_data(SQLSERVER_EXACT_NUMERICS_ALL_TYPE)

SQLSERVER_APPROXIMATE_NUMERICS_ALL_COLUMNS = generate_columns_data(SQLSERVER_APPROXIMATE_NUMERICS_ALL_TYPE)

SQLSERVER_DATE_AND_TIME_ALL_COLUMNS = generate_columns_data(SQLSERVER_DATE_AND_TIME_ALL_TYPE)

SQLSERVER_CHARACTER_STRINGS_ALL_COLUMNS = generate_columns_data(SQLSERVER_CHARACTER_STRINGS_ALL_TYPE)

SQLSERVER_UNICODE_CHARACTER_STRINGS_ALL_COLUMNS = generate_columns_data(SQLSERVER_UNICODE_CHARACTER_STRINGS_ALL_TYPE)

SQLSERVER_BINARY_STRINGS_ALL_COLUMNS = generate_columns_data(SQLSERVER_BINARY_STRINGS_ALL_TYPE)

SQLSERVER_OTHER_DATA_TYPE_ALL_COLUMNS = generate_columns_data(SQLSERVER_OTHER_DATA_TYPE_ALL_TYPE)

# print(SQLSERVER_EXACT_NUMERICS_ALL_COLUMNS)
# print(SQLSERVER_APPROXIMATE_NUMERICS_ALL_COLUMNS)
# print(SQLSERVER_DATE_AND_TIME_ALL_COLUMNS)
# print(SQLSERVER_CHARACTER_STRINGS_ALL_COLUMNS)
# print(SQLSERVER_UNICODE_CHARACTER_STRINGS_ALL_TYPE)
# print(SQLSERVER_BINARY_STRINGS_ALL_COLUMNS)
# print(SQLSERVER_OTHER_DATA_TYPE_ALL_COLUMNS)
